/*
 * Copyright 2011 Vlad Goldman.  All rights reserved.
  
   This file is part of GooOutSync - Google Outlook Sync application
  
    Project page: http://goooutsync.googlecode.com

    GooOutSync is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    GooOutSync is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with GooOutSync.  If not, see <http://www.gnu.org/licenses/>.
 */

package com.vgold.goooutsync;

public class GooOutSyncStatus {
	private static GooOutSyncStatus ref;
	private int outlookContacts;
	private int googleContacts;
	private int modifiedGoogleContacts;
	private int modifiedOutlookContacts;
	private int deletedGoogleContacts;
	private int deletedOutlookContacts;
	private int createdGoogleContacts;
	private int createdOutlookContacts;
	private int differentContacts;
	private int syncedContacts;

	private GooOutSyncStatus() {

	}

	public static GooOutSyncStatus getGooOutSyncStatus() {
		if (ref == null) {
			ref = new GooOutSyncStatus();
			ref.reset();
		}
		return ref;
	}

	public Object clone() throws CloneNotSupportedException {
		throw new CloneNotSupportedException();
	}

	public synchronized void reset() {
		outlookContacts = 0;
		googleContacts = 0;
		modifiedGoogleContacts = 0;
		modifiedOutlookContacts = 0;
		syncedContacts = 0;
		deletedGoogleContacts = 0;
		deletedOutlookContacts = 0;
		createdGoogleContacts = 0;
		createdOutlookContacts = 0;
		differentContacts = 0;

	}

	/**
	 * @return the outlookContacts
	 */
	public synchronized int getOutlookContacts() {
		return outlookContacts;
	}

	/**
	 * @param outlookContacts
	 *            the outlookContacts to set
	 */
	public synchronized void setOutlookContacts(int outlookContacts) {
		this.outlookContacts = outlookContacts;
	}

	public synchronized void incOutlookContacts() {
		this.outlookContacts++;
	}

	/**
	 * @return the googleContacts
	 */
	public synchronized int getGoogleContacts() {
		return googleContacts;
	}

	/**
	 * @param googleContacts
	 *            the googleContacts to set
	 */
	public synchronized void setGoogleContacts(int googleContacts) {
		this.googleContacts = googleContacts;
	}

	/**
	 * @return the modifiedGoogleContacts
	 */
	public synchronized int getModifiedGoogleContacts() {
		return modifiedGoogleContacts;
	}

	/**
	 * @param modifiedGoogleContacts
	 *            the modifiedGoogleContacts to set
	 */
	public synchronized void setModifiedGoogleContacts(
			int modifiedGoogleContacts) {
		this.modifiedGoogleContacts = modifiedGoogleContacts;
	}

	public synchronized void incModifiedGoogleContacts() {
		this.modifiedGoogleContacts++;
	}

	/**
	 * @return the modifiedOutloookContacts
	 */
	public synchronized int getModifiedOutlookContacts() {
		return modifiedOutlookContacts;
	}

	/**
	 * @param modifiedOutloookContacts
	 *            the modifiedOutloookContacts to set
	 */
	public synchronized void setModifiedOutlookContacts(
			int modifiedOutloookContacts) {
		this.modifiedOutlookContacts = modifiedOutloookContacts;
	}

	public synchronized void incModifiedOutlookContacts() {
		this.modifiedOutlookContacts++;
	}

	/**
	 * @return the syncedContacts
	 */
	public synchronized int getSyncedContacts() {
		return syncedContacts;
	}

	/**
	 * @param syncedContacts
	 *            the syncedContacts to set
	 */
	public synchronized void setSyncedContacts(int syncedContacts) {
		this.syncedContacts = syncedContacts;
	}

	public synchronized void incSyncedContacts() {
		this.syncedContacts++;
	}

	/**
	 * @return the differentContacts
	 */
	public synchronized int getDifferentContacts() {
		return differentContacts;
	}

	/**
	 * @param syncedContacts
	 *            the syncedContacts to set
	 */
	public synchronized void setDifferentContacts(int differentContacts) {
		this.differentContacts = differentContacts;
	}

	public synchronized void incDifferentContacts() {
		this.differentContacts++;
	}

	/**
	 * @return the deletedGoogleContacts
	 */
	public synchronized int getDeletedGoogleContacts() {
		return deletedGoogleContacts;
	}

	/**
	 * @param deletedGoogleContacts
	 *            the deletedGoogleContacts to set
	 */
	public synchronized void setDeletedGoogleContacts(int deletedGoogleContacts) {
		this.deletedGoogleContacts = deletedGoogleContacts;
	}

	public synchronized void incDeletedGoogleContacts() {
		this.deletedGoogleContacts++;
	}

	/**
	 * @return the deletedOutloookContacts
	 */
	public synchronized int getDeletedOutlookContacts() {
		return deletedOutlookContacts;
	}

	/**
	 * @param deletedOutloookContacts
	 *            the deletedOutloookContacts to set
	 */
	public synchronized void setDeletedOutlookContacts(
			int deletedOutlookContacts) {
		this.deletedOutlookContacts = deletedOutlookContacts;
	}

	public synchronized void incDeletedOutloookContacts() {
		this.deletedOutlookContacts++;
	}

	/**
	 * @return the createdGoogleContacts
	 */
	public synchronized int getCreatedGoogleContacts() {
		return createdGoogleContacts;
	}

	/**
	 * @param createdGoogleContacts
	 *            the createdGoogleContacts to set
	 */
	public synchronized void setCreatedGoogleContacts(int createdGoogleContacts) {
		this.createdGoogleContacts = createdGoogleContacts;
	}

	public synchronized void incCreatedGoogleContacts() {
		this.createdGoogleContacts++;
	}

	/**
	 * @return the createdOutloookContacts
	 */
	public synchronized int getCreatedOutlookContacts() {
		return createdOutlookContacts;
	}

	/**
	 * @param createdOutloookContacts
	 *            the createdOutloookContacts to set
	 */
	public synchronized void setCreatedOutlookContacts(
			int createdOutlookContacts) {
		this.createdOutlookContacts = createdOutlookContacts;
	}

	public synchronized void incCreatedOutlookContacts() {
		this.createdOutlookContacts++;
	}
}
